<HTML>
<HEAD>
<TITLE>
EstrategiaRegistros.cpp
</TITLE>
</HEAD>
<BODY>
<PRE>
<font color="blue">#include</font> <font color="maroon">"EstrategiaRegistros.h"</font>

EstrategiaRegistros<font color="black">:</font><font color="black">:</font>EstrategiaRegistros<font color="black">(</font>Almacenamiento <font color="black">*</font><font color="black">*</font>persistencia,TipoAlmacenamiento tipo<font color="black">)</font><font color="black">{</font>
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>posIni<font color="black">=</font><font color="maroon">0</font>;
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset<font color="black">=</font><font color="maroon">0</font>;
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA <font color="black">=</font> tipo;
    
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia <font color="black">=</font> persistencia;
    
<font color="black">}</font>
        
<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>crear<font color="black">(</font>TipoMemoria tipo, std<font color="black">:</font><font color="black">:</font>vector<font color="black">&#60;</font>Dato<font color="black">*</font><font color="black">&#62;</font> listaDatos, <font color="blue">void</font><font color="black">*</font> ptr<font color="black">)</font><font color="black">{</font>
    
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>posIni<font color="black">=</font> ptr;
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem<font color="black">=</font> tipo;
    
    <font color="blue">if</font> <font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA <font color="black">=</font><font color="black">=</font> BUFFER <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA <font color="black">=</font><font color="black">=</font> AMBOS<font color="black">)</font>
        EstrategiaRegistros<font color="black">:</font><font color="black">:</font>cargaInicialB<font color="black">(</font>listaDatos<font color="black">)</font>;
    <font color="blue">if</font> <font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA <font color="black">=</font><font color="black">=</font> ARCHIVO <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA <font color="black">=</font><font color="black">=</font> AMBOS<font color="black">)</font>
        EstrategiaRegistros<font color="black">:</font><font color="black">:</font>cargaInicialD<font color="black">(</font>listaDatos<font color="black">)</font>;
    
<font color="black">}</font>
        
<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>insertar<font color="black">(</font>Dato <font color="black">*</font>nvoDato,<font color="blue">int</font><font color="black">*</font> nroComponente<font color="black">)</font><font color="black">{</font>

    Registro <font color="black">*</font>reg;
    <font color="blue">unsigned</font> <font color="blue">int</font> tam<font color="black">=</font> nvoDato<font color="black">-</font><font color="black">&#62;</font>getTamanio<font color="black">(</font>BINARIO<font color="black">)</font>;
    <font color="blue">void</font><font color="black">*</font> pos<font color="black">=</font> <font color="black">(</font><font color="blue">char</font><font color="black">*</font><font color="black">)</font>Buffer<font color="black">:</font><font color="black">:</font>getInstance<font color="black">(</font><font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>getPointer<font color="black">(</font><font color="black">)</font> <font color="black">+</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset;
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>BUFFER <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font>  
        reg<font color="black">=</font> <font color="blue">new</font> RegistroMemoria<font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem, tam,pos , nvoDato<font color="black">)</font>;
        <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>addComponente<font color="black">(</font>reg<font color="black">)</font>;
        reg<font color="black">-</font><font color="black">&#62;</font>escribir<font color="black">(</font>BINARIO<font color="black">)</font>;
        <font color="black">*</font>nroComponente <font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>getCantidadComponentes<font color="black">(</font><font color="black">)</font> <font color="maroon">-1</font>;        
    <font color="black">}</font>
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>ARCHIVO <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font> 
        FILE <font color="black">*</font> fp;
        fp <font color="black">=</font> <font color="black">(</font>FILE<font color="black">*</font><font color="black">)</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>posIni;
        fseek<font color="black">(</font>fp,<font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset,SEEK_SET<font color="black">)</font>;
        reg<font color="black">=</font> <font color="blue">new</font> RegistroDisco<font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem, tam, fp , nvoDato<font color="black">)</font>; 
        <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>addComponente<font color="black">(</font>reg<font color="black">)</font>;
        reg<font color="black">-</font><font color="black">&#62;</font>escribir<font color="black">(</font>BINARIO<font color="black">)</font>; 
        <font color="black">*</font>nroComponente <font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>getCantidadComponentes<font color="black">(</font><font color="black">)</font> <font color="maroon">-1</font>;        
    <font color="black">}</font>
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset<font color="black">+</font><font color="black">=</font>tam;
    
<font color="black">}</font>
    

    
<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>leer<font color="black">(</font>Dato <font color="black">*</font>daux<font color="black">)</font><font color="black">{</font>
    <font color="green">//daux lo unico que tiene es una una clave primaria!</font>
    Compuesto <font color="black">*</font>compuesto;
    <font color="blue">unsigned</font> <font color="blue">int</font> pos; 
    <font color="blue">unsigned</font> <font color="blue">int</font> tam;
    RegistroMemoria <font color="black">*</font>rmaux;
    RegistroDisco <font color="black">*</font>rdaux;
    
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>BUFFER <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font>  
        compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        EstrategiaRegistros<font color="black">:</font><font color="black">:</font>ubicar<font color="black">(</font>compuesto, daux, <font color="black">&</font>pos, <font color="black">&</font>tam, BINARIO<font color="black">)</font>;
        rmaux<font color="black">=</font><font color="black">(</font>RegistroMemoria<font color="black">*</font><font color="black">)</font>compuesto<font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>pos<font color="black">)</font>;
        rmaux<font color="black">-</font><font color="black">&#62;</font>leer<font color="black">(</font>daux,BINARIO<font color="black">)</font>;
    <font color="black">}</font>
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>ARCHIVO <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font> 
        compuesto<font color="black">=</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        EstrategiaRegistros<font color="black">:</font><font color="black">:</font>ubicar<font color="black">(</font>compuesto, daux, <font color="black">&</font>pos, <font color="black">&</font>tam,BINARIO<font color="black">)</font>;
        rdaux<font color="black">=</font><font color="black">(</font>RegistroDisco<font color="black">*</font><font color="black">)</font>compuesto<font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>pos<font color="black">)</font>;      
        rdaux<font color="black">-</font><font color="black">&#62;</font>leer<font color="black">(</font>daux,BINARIO<font color="black">)</font>;
    <font color="black">}</font>

<font color="black">}</font>

<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>modificar<font color="black">(</font>Dato <font color="black">*</font>daux<font color="black">)</font><font color="black">{</font>

    <font color="blue">unsigned</font> <font color="blue">int</font> pos;
    <font color="blue">unsigned</font> <font color="blue">int</font> tam;
    <font color="blue">void</font> <font color="black">*</font>posAux;
    ComponenteAlmacenamiento <font color="black">*</font>reg;
    Compuesto <font color="black">*</font>compuesto;
    
    
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>BUFFER <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font>  
        compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        
        <font color="blue">if</font> <font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem<font color="black">=</font><font color="black">=</font> FIJA<font color="black">)</font><font color="black">{</font>
            ubicar<font color="black">(</font>compuesto, daux,<font color="black">&</font>pos, <font color="black">&</font>tam, BINARIO<font color="black">)</font>;
            reg<font color="black">=</font>compuesto<font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>pos<font color="black">)</font>;
            reg<font color="black">-</font><font color="black">&#62;</font>getAccesoDato<font color="black">(</font><font color="black">&</font>posAux<font color="black">)</font>;<font color="green">//</font>
            reg<font color="black">-</font><font color="black">&#62;</font>escribir<font color="black">(</font>posAux,daux,BINARIO<font color="black">)</font>;
        <font color="black">}</font>
        <font color="blue">else</font> <font color="black">{</font>
            <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>eliminar<font color="black">(</font>daux,<font color="maroon">0</font><font color="black">)</font>;
            <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>insertar<font color="black">(</font>daux,<font color="maroon">0</font><font color="black">)</font>;         
        <font color="black">}</font>
        
        <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>salvarTodo<font color="black">(</font>BINARIO<font color="black">)</font>;<font color="green">//creo no va</font>
    <font color="black">}</font>
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>ARCHIVO <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font> 
        compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        <font color="blue">if</font> <font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem<font color="black">=</font><font color="black">=</font> FIJA<font color="black">)</font><font color="black">{</font>
            ubicar<font color="black">(</font>compuesto, daux,<font color="black">&</font>pos, <font color="black">&</font>tam,BINARIO<font color="black">)</font>;
            reg<font color="black">=</font>compuesto<font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>pos<font color="black">)</font>;
            reg<font color="black">-</font><font color="black">&#62;</font>getAccesoDato<font color="black">(</font><font color="black">&</font>posAux<font color="black">)</font>;<font color="green">//</font>
            reg<font color="black">-</font><font color="black">&#62;</font>escribir<font color="black">(</font>posAux,daux,BINARIO<font color="black">)</font>;
        <font color="black">}</font>
        <font color="blue">else</font> <font color="black">{</font>
            <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>eliminar<font color="black">(</font>daux,<font color="maroon">0</font><font color="black">)</font>;
            <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>insertar<font color="black">(</font>daux,<font color="maroon">0</font><font color="black">)</font>;         
        <font color="black">}</font>
        <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>salvarTodo<font color="black">(</font>BINARIO<font color="black">)</font>;<font color="green">//creo no va</font>
    <font color="black">}</font>
    
<font color="black">}</font>
        
<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>eliminar<font color="black">(</font>Dato <font color="black">*</font>daux, <font color="blue">int</font> nroComponente<font color="black">)</font><font color="black">{</font>

    <font color="blue">int</font> i;
    <font color="blue">unsigned</font> <font color="blue">int</font> pos;
    <font color="blue">unsigned</font> <font color="blue">int</font> tam;
    ComponenteAlmacenamiento <font color="black">*</font>reg;
    Compuesto <font color="black">*</font>compuesto;
    <font color="blue">void</font> <font color="black">*</font>posAux;
    FILE <font color="black">*</font>fp;
    
    
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>BUFFER <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font>  
        compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        ubicar<font color="black">(</font>compuesto,daux,<font color="black">&</font>pos, <font color="black">&</font>tam,BINARIO<font color="black">)</font>;
        reg <font color="black">=</font> compuesto<font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>pos<font color="black">)</font>;
        reg<font color="black">-</font><font color="black">&#62;</font>borrar<font color="black">(</font><font color="black">)</font>;
        compuesto <font color="black">-</font><font color="black">&#62;</font>deleteComponentAt<font color="black">(</font>pos<font color="black">)</font>;
        <font color="blue">for</font><font color="black">(</font>i<font color="black">=</font>pos;i<font color="black">&#60;</font>compuesto<font color="black">-</font><font color="black">&#62;</font>getCantidadComponentes<font color="black">(</font><font color="black">)</font>;i<font color="black">+</font><font color="black">+</font><font color="black">)</font><font color="black">{</font>
            reg <font color="black">=</font> compuesto <font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>i<font color="black">)</font>;
            reg<font color="black">-</font><font color="black">&#62;</font>getAccesoDato<font color="black">(</font><font color="black">&</font>posAux<font color="black">)</font>;<font color="green">//</font>
            posAux <font color="black">=</font> <font color="black">(</font><font color="blue">char</font><font color="black">*</font><font color="black">)</font> posAux <font color="black">-</font>tam;
            reg<font color="black">-</font><font color="black">&#62;</font>escribir<font color="black">(</font>posAux,BINARIO<font color="black">)</font>;
        <font color="black">}</font>
        
    <font color="black">}</font>
    <font color="blue">if</font><font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>ARCHIVO <font color="black">|</font><font color="black">|</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoA<font color="black">=</font><font color="black">=</font>AMBOS<font color="black">)</font><font color="black">{</font> 
        compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        ubicar<font color="black">(</font>compuesto,daux,<font color="black">&</font>pos, <font color="black">&</font>tam,BINARIO<font color="black">)</font>;
        reg <font color="black">=</font> compuesto<font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>pos<font color="black">)</font>;
        reg<font color="black">-</font><font color="black">&#62;</font>borrar<font color="black">(</font><font color="black">)</font>;
        compuesto <font color="black">-</font><font color="black">&#62;</font>deleteComponentAt<font color="black">(</font>pos<font color="black">)</font>;
        <font color="blue">for</font><font color="black">(</font>i<font color="black">=</font>pos;i<font color="black">&#60;</font>compuesto<font color="black">-</font><font color="black">&#62;</font>getCantidadComponentes<font color="black">(</font><font color="black">)</font>;i<font color="black">+</font><font color="black">+</font><font color="black">)</font><font color="black">{</font>
            reg <font color="black">=</font> compuesto <font color="black">-</font><font color="black">&#62;</font>getComponenteAt<font color="black">(</font>i<font color="black">)</font>;
            reg<font color="black">-</font><font color="black">&#62;</font>getAccesoDato<font color="black">(</font><font color="black">&</font>posAux<font color="black">)</font>;
            fp<font color="black">=</font><font color="black">(</font>FILE<font color="black">*</font><font color="black">)</font>posAux;
            fseek<font color="black">(</font>fp,tam, SEEK_CUR<font color="black">)</font>;
            reg<font color="black">-</font><font color="black">&#62;</font>escribir<font color="black">(</font>posAux,BINARIO<font color="black">)</font>;
        <font color="black">}</font>
    <font color="black">}</font>
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset<font color="black">-</font><font color="black">=</font>tam;

<font color="black">}</font>


<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>cargaInicialB<font color="black">(</font>std<font color="black">:</font><font color="black">:</font>vector<font color="black">&#60;</font>Dato<font color="black">*</font><font color="black">&#62;</font> listaDatos<font color="black">)</font><font color="black">{</font>

    RegistroMemoria <font color="black">*</font>reg;
    <font color="blue">unsigned</font> <font color="blue">int</font> tam;
    <font color="blue">void</font> <font color="black">*</font>pos<font color="black">=</font> Buffer<font color="black">:</font><font color="black">:</font>getInstance<font color="black">(</font><font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>getPointer<font color="black">(</font><font color="black">)</font>;
    Compuesto <font color="black">*</font>compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
    vector<font color="black">&#60;</font>Dato<font color="black">*</font><font color="black">&#62;</font><font color="black">:</font><font color="black">:</font>iterator it;
    <font color="green">//(TipoMemoria tipo, int tamanio, void* accesoMemoria, dato</font>
    <font color="blue">for</font> <font color="black">(</font>it<font color="black">=</font> listaDatos.begin<font color="black">(</font><font color="black">)</font>; it <font color="black">!</font><font color="black">=</font> listaDatos.end<font color="black">(</font><font color="black">)</font>; it<font color="black">+</font><font color="black">+</font><font color="black">)</font><font color="black">{</font>
            tam<font color="black">=</font> <font color="black">(</font><font color="black">*</font>it<font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>getTamanio<font color="black">(</font>BINARIO<font color="black">)</font>;
            reg<font color="black">=</font> <font color="blue">new</font> RegistroMemoria<font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem, tam, pos, <font color="black">*</font>it<font color="black">)</font>;
            pos<font color="black">=</font> <font color="black">(</font><font color="blue">char</font><font color="black">*</font><font color="black">)</font>pos <font color="black">+</font> tam <font color="black">)</font>;
            <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset<font color="black">+</font><font color="black">=</font>tam;
            compuesto<font color="black">-</font><font color="black">&#62;</font>addComponente<font color="black">(</font>reg<font color="black">)</font>;
            <font color="green">// este reg lo debo  destruir aca??</font>
    <font color="black">}</font>
    <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">0</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>salvarTodo<font color="black">(</font>BINARIO<font color="black">)</font>;
<font color="black">}</font>

<font color="blue">void</font> EstrategiaRegistros<font color="black">:</font><font color="black">:</font>cargaInicialD<font color="black">(</font>std<font color="black">:</font><font color="black">:</font>vector<font color="black">&#60;</font>Dato<font color="black">*</font><font color="black">&#62;</font> listaDatos<font color="black">)</font><font color="black">{</font>
       
        RegistroDisco <font color="black">*</font>reg;
        FILE <font color="black">*</font>fp<font color="black">=</font> <font color="black">(</font>FILE<font color="black">*</font><font color="black">)</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>posIni;
        <font color="blue">unsigned</font> <font color="blue">int</font> tam;
        Compuesto <font color="black">*</font>compuesto<font color="black">=</font> <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>getCompuesto<font color="black">(</font><font color="black">)</font>;
        vector<font color="black">&#60;</font>Dato<font color="black">*</font><font color="black">&#62;</font><font color="black">:</font><font color="black">:</font>iterator it;
        <font color="green">//(TipoMemoria tipo, int tamanio, void* accesoMemoria, dato</font>
        <font color="blue">for</font> <font color="black">(</font>it<font color="black">=</font> listaDatos.begin<font color="black">(</font><font color="black">)</font>; it <font color="black">!</font><font color="black">=</font> listaDatos.end<font color="black">(</font><font color="black">)</font>; it<font color="black">+</font><font color="black">+</font><font color="black">)</font><font color="black">{</font>
                        tam<font color="black">=</font> <font color="black">(</font><font color="black">*</font>it<font color="black">)</font><font color="black">-</font><font color="black">&#62;</font>getTamanio<font color="black">(</font>BINARIO<font color="black">)</font>;
                        fseek<font color="black">(</font>fp,<font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset,SEEK_SET<font color="black">)</font>;
                        reg<font color="black">=</font> <font color="blue">new</font> RegistroDisco<font color="black">(</font><font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>tipoMem, tam,fp, <font color="black">*</font>it<font color="black">)</font>;                       
                        <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>offset<font color="black">+</font><font color="black">=</font>tam;
                        compuesto<font color="black">-</font><font color="black">&#62;</font>addComponente<font color="black">(</font>reg<font color="black">)</font>;
        <font color="black">}</font>
        <font color="blue">this</font><font color="black">-</font><font color="black">&#62;</font>persistencia<font color="black">[</font><font color="maroon">1</font><font color="black">]</font><font color="black">-</font><font color="black">&#62;</font>salvarTodo<font color="black">(</font>BINARIO<font color="black">)</font>;
<font color="black">}</font>



EstrategiaRegistros<font color="black">:</font><font color="black">:</font>~EstrategiaRegistros<font color="black">(</font><font color="black">)</font><font color="black">{</font>
<font color="black">}</font>

</PRE>
</BODY>
</HTML>
